Благодарим на автора за съгласието му да публикуваме тази статия в PCHelp! barut & pgm

LINUX-BG   Адрес : http://linux-bg.org

Възможности за сертификатната измама в X.509
От: Beco
Публикувана на: 7-11-2004
Адрес на статията: http://linux-bg.org/cgi-bin/y/index.pl?page=article&id=advices&key=366581463

Възможности за сертификатната измама в X.509

Copyright © 2004, Веселин Колев, OpenIntegra Ltd.

Това е една статия, която малко или много е посветена на методите за измама, които са възможни в рамките на сертификатния модел X.509 и които са трудно предотвратими технически, доколкото те са базирани на особености, които излизат извън рамките на модела.

Статията не е наръчник за измамници, а е по-скоро опит да бъдат накарани издателите на сертификати (или повече известни като удостоверители) да повишат вниманието си в процеса на издаване. Учудващо е как алчността на удостоверителите опорочава доверителната услуга. И за това не е виновен толкова сертификатния модел, колкото самите удостоверители.

Също така тази статия трябва да накара обикновените потребители да бъдат внимателни при използването на сертификатните системи. Сигурността на потребителя е и негово задължение.

Съдържание:
1. Някои общи понятия

В рамките на сертификатния модел се следва йерархична структура, която представлява пирамида на доверитето. На върха на пирамидата стои един единствен (въховен) удостоверител. Възможно е в йерархията да има още удостоверители, но всички те са подчинени на върховния удостоверител.

Всеки, който е удостоверяван в рамките на пирамидата на доверие е директно или индиректно удостоверяван от върховния удостоверител. Индиректното удостоверяване става чрез подудостоверител, но на практика той е удостоверяем от върховния удостоверител и така пак схемата на доверие започва от последния.

Всеки публичен ключ има своя сума за проверка, която може да бъде изчислена по някой от известните за това алгоритми (например MD5 и SHA1). Основата на всеки X.509 сертификат е публичния ключ заложен в него. Следователно, ако се знае сумата за проверка на публичния ключ, който е основа на сертификата, по някакъв независим път, то може да се провери дали копието от дадено копие на сертификата е оригинално или е фалшифицирано.

Съдържание
2. Удостоверителски сертификати в хранилищата на браузърите

Всички браузъри, които поддръжат HTTPS, имат локални хранилища за сертификати на удостоверители. Сертификатите, които се намират там са обект на дискусия. Причината за това е, че производителят на браузъра подава списък със сертификати на удостоверители и така той се превръща в удостоверител на удостоверителите. Учудващо е как огромното болшинство от потребители вярват на производителя на браузъра безрезервно и приемат сертификатите на удостоверителите за истински. Дори не си правят труда да проверят цифровия отпечатък на удостоверителски сертификати, които най-често използват. Това е една невероятно широка база за измама с непредвидими последствия.

Проблемът може да стане много по-дълбок и да доведе до непредвидими последствия особено при използването на пиратски софтуер. В световен мащаб операционните системи на Microsoft са обект на нелегитимно (в разрез с лиценза) копиране и инсталиране. Потребителите на нелегитимно инсталираните копия трудно могат да направят проверка на оригиналността на копието на операционната система. Доколкото тя има централизирано хранилище на сертификати, няма никаква гаранция, че сертификатите не могат да бъдат подменени или допълнени с фалшиви такива. Подобни случаи са известни и засягат работата на Internet Exploret в HTTPS среда, както и IPsec услугите (L2TP/IPsec).

Използването на софтуер с отворен код не е панацея и при неговото използване трябва да се внимава особено много. Най-използваният браузър в операционни системи с отворен код си остава Mozilla, макар напоследък да се забелязва ускорена миграция към компонентните решения като FireFox. Множество дистрибуции включват този браузър като стандартен пакет и така те включват и хранилището му със сертификати на удостоверители. Доколкото в светът на отворения код дистрибуциите се разпространяват не директно от производителя им, а се предлагат за изтелгяне от различни сървъри в Интернет, то потребителят трябва сам да се увери, че е свалил и инсталирал неподменена дистрибуция. Единственият начин да направи това е да провери електронният подпис извършен от производителя върху файловете на дистрибуцията. Тук изникват ведната два проблема:

  • Потребителите не проверяват електронния подпис

    Повечето потребители не са наястно със значението и използването на електрония подпис. Те не са наястно и с използването на сертификатния модел OpenPGP, който се използва за електронно подписване на файлове в системите с отворен код. Оттам те не могат да бъдат сигурни, че инсталирайки Mozilla инсталират наистина оригиналния продукт, а не такъв, злонамерено подменен някъде по пътя и с подменени или прибавени фалшиви X.509 сертификати.

    Може да се спомене и друг странен случай, който много често се наблюдава. Излиза нова версия на Mozilla или версия с включени в нея поправки. Потребителят е проверил електронния подпис на ISO файла, от който е инсталиран дистрибуцията, или файла, от който е инсталирал Mozilla. Но той не прави това за новия пакет. Обикновено това се случва, ако той инсталира ръчно пакета и пренебрегва проверката на електронния подпис или ако използва пакетна система, която няма вградена проверка на електронния подпис, или пък използва пакетна система с проверка на електронния подпис, но подминава с пренебрежение предупреждаващите съобщения.

  • Потребителите използват пакетни системи без електронен подпис

    Колкото и да се говори, че Linux е сигурна операционна система, много Linux дистрибуции нямат пакетна система, която да извършва и проверява електронния подпис върху файловете с пакетите към дистрибуцията. Единствената пакетна система, която има традиции и проверена работоспособност при създаване и проверка на електронни подписи е RPM.

Един много опасен навик на потребителя е да поставя в хранилището за удостоверителски сертификати на браузъра такива с непроверен произход само и само за да се отърве от съобщенията, които браузъра му подава при посещение на страница със сертификат, чиито удостовеител е неизвестен. Невероятно опасно е да се следват инструкции от типа "за да не виждате предупреждението за използване на неразпознат сертификат, моля инсталирайте сертификата чрез следването на следната хипервръзка". Опасността идва от това, че не се знае кой наистина е издал удостоверителския сертификат. Както ще бъде показано по-долу, това е една от техниките за измама.

Съдържание
3. Перфектната схема

Перфектната схема на удостоверяване на сертификат в сертификатния модел X.509 може да се опише накратко чрез следните последователни стъпки:

  1. Клиентът директно контактува с удостоверителя

    Клиентът изисква от удостоверителя цифровия отпечатък на неговия сертификат и го получва лично от оторизирано за това лице, работещо за удостоверителя. След това клиентът изтегля удостоверителския сертификат от интернет страницата на удостоверителя, проверява цифровия отпечатък и го сравнява с този, който е получил лично от удостоверителя. Ако двата отпечатъка съвпадат, този сертификат с голяма вероятност е автентичен и може да бъде поставен в сертификатното хранилище на браузъра. Ако сертификатът на удостоверителя е наличен от преди това в хранилището за удостоверителски сертификати, то само се проверява цифровия отпечатък.

  2. При проверка на клиентски сертификат се проверява кой удостоверителски сертификат го удостоверява и при съмнение се контактува с удостоверителя

    Тази проверка трябва да стане преди да бъдат предадени каквито и да са данни (например потребителско име и парола) в защитения слой между сървъра и клиента. Невероятно нелепо хрумване е данните от една уеб-форма е да се попълват в документа изтеглен по протокол HTTP, а само да се изпращат по HTTPS (чрез "action"), защото тогава няма време и условия за проверка преди предаването на данните. Страници, които предлагат подобна услуга са потенциално опасни.

Съдържание
4. Небрежните удостоверители

Тук ще опишем удостоверители, които може би трябва да бъдат определяни като престъпни, но за да смекчим тона, ще ги определим като небрежни или несъвестни. Смисълът на тази класификация е, че с цел да получат парите на клиента, те издават безогледно сертификати, без надлежна проверка на лицето или организацията, на която ще бъде издаден сертификат.

Един несъвестен удостоверител, който не се постарае да направи пълна проверка на удостоверяваното лице или организация, може да предизвика дублиране на сертификат и така да спомогне за успешна реализация на IP измама или измама на база потребителско удостоверяване. За голямо съжаление повечето удостоверители гледат на предлаганата от тях услуга като на едно задоволяване на потребителското търсене и правят компромиси с цел по-големи парични приходи. Това отваря невероятно голяма дупка в сигурността на сертификатния модел, която не може да бъде запушена с никакви технически средства, защото тя нарушава принципа на вярното първично удостоверяване, без който принцип нито един сертификатен модел не може да съществува.

Съдържание
5. Подхвърлените сертификати

Подхвърлените сертификати са смъртоносната отрова за сертификатния модел X.509. За жалост те са често използван похват при атака над различни услуги, най-често разплащания. Целта, с която те се използват, е да се декларира пред баурзъра или друг софтуер използващ X.509 сертификати, мним удостоверител. Истината е, че подобна измама минава и пред добре обучени в сертификатния модел потребители. Учудващо е, че има и измамени администратори, чиято задача е преди всичко да внимават какво инсталират.

Един от сценариите за подхвърляне на сертификат вече бе описан по-горе (виж 2). Друг сценарий е сертификат да бъде поставен от друг човек, имащ достъп до компютъра на жертвата или жертвата да импортира този серфикат по невнимание (последното едва ли е използваемо за атака).

Истината е, че големият ефект от подхвърлен сертификат най-добре се вижда при масовото му подхвърляне на потребителите така, че да се знае, че над определен процент от тях са го поставили в сертификатните си хранилища. Например, много е лесно да направиш страница за безплатно изпращане на SMS и да обясниш на всеки новодошъл в тази страница, че за да може да използва пълната функционалност на сайта и за защита на данните, той трябва да използва HTTPS и за целта трябва да постави в хранилището за сертификати на браузъра си удостоверителски сертификат като следва някаква хипервръзка. Оттук нататък може да се следи колко потребители са изтеглили сертификата и да се направи оценка на заразяването на хранилищата. Ако атаката е обмислена добре, извършващите я могат да изчакат определен период от време за да са сигурни, че имат гарантиран ефект (ще разберат за това като видят, че броят HTTPS сесии е сравнително постоянен, а изтеглянията на сертификата са непропорционално малко). Тогава те могат да пристъпят към атака. При една добре организирана измама те могат да произведат сертификат на сървър, който да дублира реално съществуващ сървър за електронно разплащане. Последиците от това са ясни на всички.

Съдържание
6. Измамните вериги

Сертификатният модел X.509 позволява използването на подудостоверители. За да може да има подудостоверители, техния X.509 сертификат, трябва да е подписан от върховния удостоверител. Така се създава верига на доверие. Върховният удостоверител вярва на подудостоверителя и го упълномощява да удостоверява лица, организции и др. като им издава сертификати. Всеки сертификат издаден от подудостоверител всъщност е облечен в доверието на върховния удостоверител.

Истината е, че моделът X.509 не може адекватно да отчита наличието на увеличаване на верояността за пробив в удостоверителната система по протежение на веригата. Възможно е (има данни за такива измами) някой от подудостоверителите да издаде поради грешка подудостоверителски сертификат на измамник и той да генерира дублиращи сертификати и да участва в измами основани на дублиране на услуга чрез IP измама или дублиране на потребителска идентификация.


<< | САГА ЗА POSIX или УВОД В POSIX'ИВИЗМА >>

Авторите на сайта, както и техните сътрудници запазват авторските права върху собствените си материали публикувани тук, но те са copyleft т.е. могат свободно да бъдат копирани и разпространявани с изискването изрично да се упоменава името на автора, както и да се публикува на видно място, че те са взети от оригиналния им URL-адрес на този сървър (http://linux-bg.org). Авторските права на преводните материали принадлежат на техните автори. Ако с публикуването тук на някакъв материал неволно са нарушени нечии права - след констатирането на този факт материалът ще бъде свален.

All trademarks, logos and copyrights mentioned on this site are the property of their respective owners.
Linux is copyright by Linus Torvalds.
Copyright © 1999, 2003 Slavei Karadjov.
All rights reserved.

Изпълнението отне: 1 wallclock secs ( 0.15 usr + 0.00 sys = 0.15 CPU)